package org.example.volunteerend.service;

import org.example.volunteerend.dto.CommentCreateRequest;
import org.example.volunteerend.dto.PageResponse;
import org.example.volunteerend.entity.CommunityComment;

public interface CommunityService {
    
    /**
     * 添加项目评论
     * @param request 评论请求
     * @param userId 用户ID
     * @return 评论ID
     */
    Integer addComment(CommentCreateRequest request, Integer userId);
    
    /**
     * 获取项目评论列表
     * @param projectId 项目ID
     * @param page 页码
     * @param pageSize 每页数量
     * @param sortBy 排序字段
     * @param sortOrder 排序方式
     * @return 评论分页数据
     */
    PageResponse<CommunityComment> getProjectComments(
            Integer projectId, 
            Integer page, 
            Integer pageSize, 
            String sortBy, 
            String sortOrder);
    
    /**
     * 获取项目所有评论（包括回复）
     * @param projectId 项目ID
     * @param page 页码
     * @param pageSize 每页数量
     * @param sortBy 排序字段
     * @param sortOrder 排序方式
     * @return 评论分页数据
     */
    PageResponse<CommunityComment> getAllProjectComments(
            Integer projectId, 
            Integer page, 
            Integer pageSize, 
            String sortBy, 
            String sortOrder);
    
    /**
     * 项目点赞/取消点赞
     * @param projectId 项目ID
     * @param action 操作类型(like/unlike)
     * @return 当前点赞数
     */
    Integer likeProject(Integer projectId, String action);
} 